# Python3 标准库概览

# 操作系统接口

"""
os 模块提供了不少与操作系统相关联的函数。

"""

import os

os.getcwd()  # 返回当前的工作目录

# 文件通配符

"""
glob 模块提供了一个函数用于从目录通配符搜索中生成文件列表:
"""

import glob

glob.glob('*.py')

# 命令行参数

"""
通用工具脚本经常调用命令行参数。这些命令行参数以链表形式存储于 sys 模块的 argv 变量。
例如在命令行中执行 "python demo.py one two three" 后可以得到以下输出结果:
"""

import sys

print(sys.argv)

# 字符串正则匹配

"""
re 模块为高级字符串处理提供了正则表达式工具。对于复杂的匹配和处理，正则表达式提供了简洁、优化的解决方案:
"""

import re

re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')
re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat')


# 数学

"""
math 模块为浮点运算提供了对底层 C 函数库的访问:
random 提供了生成随机数的工具。

"""

import math
import random

math.cos(math.pi / 4)
math.log(1024, 2)
random.choice(['apple', 'pear', 'banana'])

# 日期和时间

"""
datetime 模块为日期和时间处理同时提供了简单和复杂的方法。

支持日期和时间算法的同时，实现的重点放在更有效的处理和格式化输出。

该模块还支持时区处理:

"""

from datetime import date

now = date.today()
now

# 数据压缩

"""
以下模块直接支持通用的数据打包和压缩格式：zlib，gzip，bz2，zipfile，以及 tarfile。

"""

import zlib

s = b'witch which has which witches wrist watch'
len(s)

t = zlib.compress(s)
len(t)

zlib.decompress(t)
b'witch which has which witches wrist watch'
zlib.crc32(s)
